package org.akomantoso.core.io;

import java.io.IOException;

import org.akomantoso.core.data.AkomaNtoso;
import org.akomantoso.core.data.AnyOtherType;

/**
 * @author <a href="mailto:jacques.militello@gmail.com">Jacques Militello</a>
 */
public interface Input {

	void readNamespace(AkomaNtoso akomaNtoso) throws IOException;
	
	void readNextStartElement() throws IOException;
	
	void readNextStartOrEndElement() throws IOException;
	
	String readAttribute(String name) throws IOException;
	
	String readAttribute(String prefix,String name) throws IOException;
	
	String getLocalName();
	
	int getEventType();
	
	int readNext() throws IOException;
	
	String readContent() throws IOException;
	
	void readExternal(AnyOtherType anyOtherType) throws IOException;
	
	boolean isNotLastVersion();
	
	void doBackwardCompatible(Class<?> clazz, Object object) throws IOException;

	boolean isWhiteSpace();
	
}